package com.atguigu.jdbc3;

import com.atguigu.jdbc.JDBCUtils;
import org.junit.Test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/*
    批处理
    1.mysql的驱动包的版本 ：5.1.3x才支持批处理
    2.在url后面需要传一个参数rewriteBatchedStatements=true
 */
public class BatchDemo {

    @Test
    public void insert() throws SQLException {
        Connection connection = JDBCUtils.getConnection();
        String sql = "insert into emp(id,name) values(?,?)";
        PreparedStatement ps = connection.prepareStatement(sql);

        for (int i = 1; i <= 100000; i++) {
            ps.setInt(1,i);
            ps.setString(2,"aaa"+i);
            //将需要执行的sql放入到批处理中
            ps.addBatch();

            if (i % 1000 == 0){
                //执行批处理操作
                ps.executeBatch();
                //清空批处理作业
                ps.clearBatch();
            }
        }

    }
}
